package com.example.identifyvisio.utis;

import org.w3c.dom.NodeList;

import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;

/**
 * 文件文本处理
 */
public class ProcessFileUtil {
    /**
     * 节点文本获取
     *
     * @param textNodes
     * @return
     */
    public static String getText(NodeList textNodes) {
        String s = textNodes.getLength() > 0 ? textNodes.item(0).getTextContent() : null;
        if (s != null) {
            String substring = s.trim();
            String noNewLineString = substring.replaceAll("[\\r\\n]+", "");
            return noNewLineString;
        }
        return s;
    }





    /**
     * 递归删除目录下的所有文件和子目录。
     *
     * @param dir 要清空的目录路径
     * @throws IOException 如果删除过程中发生错误
     */
    public static void deleteDirectoryContents(Path dir) throws IOException {
        if (Files.exists(dir) && Files.isDirectory(dir)) {
            Files.walkFileTree(dir, new SimpleFileVisitor<Path>() {
                @Override
                public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                    Files.delete(file);
                    return FileVisitResult.CONTINUE;
                }

                @Override
                public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
                    Files.delete(dir);
                    return FileVisitResult.CONTINUE;
                }
            });
        } else {
            System.out.println("指定路径不是一个存在的目录: " + dir);
        }
    }
}
